var t = require("../../@babel/runtime/helpers/typeof"),
  e = "[object Arguments]",
  r = "[object Function]",
  n = "[object GeneratorFunction]",
  o = "[object Map]",
  c = "[object Set]",
  u = /\w*$/,
  a = /^\[object .+?Constructor\]$/,
  i = /^(?:0|[1-9]\d*)$/,
  f = {};
f[e] = f["[object Array]"] = f["[object ArrayBuffer]"] = f["[object DataView]"] = f["[object Boolean]"] = f["[object Date]"] = f["[object Float32Array]"] = f["[object Float64Array]"] = f["[object Int8Array]"] = f["[object Int16Array]"] = f["[object Int32Array]"] = f[o] = f["[object Number]"] = f["[object Object]"] = f["[object RegExp]"] = f[c] = f["[object String]"] = f["[object Symbol]"] = f["[object Uint8Array]"] = f["[object Uint8ClampedArray]"] = f["[object Uint16Array]"] = f["[object Uint32Array]"] = !0, f["[object Error]"] = f[r] = f["[object WeakMap]"] = !1;
var s = "object" == ("undefined" == typeof global ? "undefined" : t(global)) && global && global.Object === Object && global,
  l = "object" == ("undefined" == typeof self ? "undefined" : t(self)) && self && self.Object === Object && self,
  b = s || l || Function("return this")(),
  p = "object" == ("undefined" == typeof exports ? "undefined" : t(exports)) && exports && !exports.nodeType && exports,
  _ = p && "object" == ("undefined" == typeof module ? "undefined" : t(module)) && module && !module.nodeType && module,
  y = _ && _.exports === p;

function h(t, e) {
  return t.set(e[0], e[1]), t
}

function d(t, e) {
  return t.add(e), t
}

function j(t, e, r, n) {
  var o = -1,
    c = t ? t.length : 0;
  for (n && c && (r = t[++o]); ++o < c;) r = e(r, t[o], o, t);
  return r
}

function v(t) {
  var e = !1;
  if (null != t && "function" != typeof t.toString) try {
    e = !!(t + "")
  } catch (t) {}
  return e
}

function g(t) {
  var e = -1,
    r = Array(t.size);
  return t.forEach((function (t, n) {
    r[++e] = [n, t]
  })), r
}

function w(t, e) {
  return function (r) {
    return t(e(r))
  }
}

function A(t) {
  var e = -1,
    r = Array(t.size);
  return t.forEach((function (t) {
    r[++e] = t
  })), r
}
var m, O = Array.prototype,
  x = Function.prototype,
  S = Object.prototype,
  I = b["__core-js_shared__"],
  U = (m = /[^.]+$/.exec(I && I.keys && I.keys.IE_PROTO || "")) ? "Symbol(src)_1." + m : "",
  E = x.toString,
  F = S.hasOwnProperty,
  P = S.toString,
  $ = RegExp("^" + E.call(F).replace(/[\\^$.*+?()[\]{}|]/g, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"),
  k = y ? b.Buffer : void 0,
  B = b.Symbol,
  D = b.Uint8Array,
  M = w(Object.getPrototypeOf, Object),
  V = Object.create,
  R = S.propertyIsEnumerable,
  W = O.splice,
  C = Object.getOwnPropertySymbols,
  T = k ? k.isBuffer : void 0,
  z = w(Object.keys, Object),
  L = _t(b, "DataView"),
  N = _t(b, "Map"),
  q = _t(b, "Promise"),
  G = _t(b, "Set"),
  H = _t(b, "WeakMap"),
  J = _t(Object, "create"),
  K = vt(L),
  Q = vt(N),
  X = vt(q),
  Y = vt(G),
  Z = vt(H),
  tt = B ? B.prototype : void 0,
  et = tt ? tt.valueOf : void 0;

function rt(t) {
  var e = -1,
    r = t ? t.length : 0;
  for (this.clear(); ++e < r;) {
    var n = t[e];
    this.set(n[0], n[1])
  }
}

function nt(t) {
  var e = -1,
    r = t ? t.length : 0;
  for (this.clear(); ++e < r;) {
    var n = t[e];
    this.set(n[0], n[1])
  }
}

function ot(t) {
  var e = -1,
    r = t ? t.length : 0;
  for (this.clear(); ++e < r;) {
    var n = t[e];
    this.set(n[0], n[1])
  }
}

function ct(t) {
  this.__data__ = new nt(t)
}

function ut(r, n) {
  var o = wt(r) || function (r) {
      return function (e) {
        return function (e) {
          return !!e && "object" == t(e)
        }(e) && At(e)
      }(r) && F.call(r, "callee") && (!R.call(r, "callee") || P.call(r) == e)
    }(r) ? function (t, e) {
      for (var r = -1, n = Array(t); ++r < t;) n[r] = e(r);
      return n
    }(r.length, String) : [],
    c = o.length,
    u = !!c;
  for (var a in r) !n && !F.call(r, a) || u && ("length" == a || dt(a, c)) || o.push(a);
  return o
}

function at(t, e, r) {
  var n = t[e];
  F.call(t, e) && gt(n, r) && (void 0 !== r || e in t) || (t[e] = r)
}

function it(t, e) {
  for (var r = t.length; r--;)
    if (gt(t[r][0], e)) return r;
  return -1
}

function ft(t, a, i, s, l, b, p) {
  var _;
  if (s && (_ = b ? s(t, l, b, p) : s(t)), void 0 !== _) return _;
  if (!xt(t)) return t;
  var y = wt(t);
  if (y) {
    if (_ = function (t) {
        var e = t.length,
          r = t.constructor(e);
        return e && "string" == typeof t[0] && F.call(t, "index") && (r.index = t.index, r.input = t.input), r
      }(t), !a) return function (t, e) {
      var r = -1,
        n = t.length;
      for (e || (e = Array(n)); ++r < n;) e[r] = t[r];
      return e
    }(t, _)
  } else {
    var w = ht(t),
      m = w == r || w == n;
    if (mt(t)) return function (t, e) {
      if (e) return t.slice();
      var r = new t.constructor(t.length);
      return t.copy(r), r
    }(t, a);
    if ("[object Object]" == w || w == e || m && !b) {
      if (v(t)) return b ? t : {};
      if (_ = function (t) {
          return "function" != typeof t.constructor || jt(t) ? {} : function (t) {
            return xt(t) ? V(t) : {}
          }(M(t))
        }(m ? {} : t), !a) return function (t, e) {
        return bt(t, yt(t), e)
      }(t, function (t, e) {
        return t && bt(e, St(e), t)
      }(_, t))
    } else {
      if (!f[w]) return b ? t : {};
      _ = function (t, e, r, n) {
        var a = t.constructor;
        switch (e) {
          case "[object ArrayBuffer]":
            return lt(t);
          case "[object Boolean]":
          case "[object Date]":
            return new a(+t);
          case "[object DataView]":
            return function (t, e) {
              var r = e ? lt(t.buffer) : t.buffer;
              return new t.constructor(r, t.byteOffset, t.byteLength)
            }(t, n);
          case "[object Float32Array]":
          case "[object Float64Array]":
          case "[object Int8Array]":
          case "[object Int16Array]":
          case "[object Int32Array]":
          case "[object Uint8Array]":
          case "[object Uint8ClampedArray]":
          case "[object Uint16Array]":
          case "[object Uint32Array]":
            return function (t, e) {
              var r = e ? lt(t.buffer) : t.buffer;
              return new t.constructor(r, t.byteOffset, t.length)
            }(t, n);
          case o:
            return function (t, e, r) {
              return j(e ? r(g(t), !0) : g(t), h, new t.constructor)
            }(t, n, r);
          case "[object Number]":
          case "[object String]":
            return new a(t);
          case "[object RegExp]":
            return function (t) {
              var e = new t.constructor(t.source, u.exec(t));
              return e.lastIndex = t.lastIndex, e
            }(t);
          case c:
            return function (t, e, r) {
              return j(e ? r(A(t), !0) : A(t), d, new t.constructor)
            }(t, n, r);
          case "[object Symbol]":
            return function (t) {
              return et ? Object(et.call(t)) : {}
            }(t)
        }
      }(t, w, ft, a)
    }
  }
  p || (p = new ct);
  var O = p.get(t);
  if (O) return O;
  if (p.set(t, _), !y) var x = i ? function (t) {
    return function (t, e, r) {
      var n = e(t);
      return wt(t) ? n : function (t, e) {
        for (var r = -1, n = e.length, o = t.length; ++r < n;) t[o + r] = e[r];
        return t
      }(n, r(t))
    }(t, St, yt)
  }(t) : St(t);
  return function (t, e) {
    for (var r = -1, n = t ? t.length : 0; ++r < n && !1 !== e(t[r], r, t););
  }(x || t, (function (e, r) {
    x && (e = t[r = e]), at(_, r, ft(e, a, i, s, r, t, p))
  })), _
}

function st(t) {
  return !(!xt(t) || function (t) {
    return !!U && U in t
  }(t)) && (Ot(t) || v(t) ? $ : a).test(vt(t))
}

function lt(t) {
  var e = new t.constructor(t.byteLength);
  return new D(e).set(new D(t)), e
}

function bt(t, e, r, n) {
  r || (r = {});
  for (var o = -1, c = e.length; ++o < c;) {
    var u = e[o],
      a = n ? n(r[u], t[u], u, r, t) : void 0;
    at(r, u, void 0 === a ? t[u] : a)
  }
  return r
}

function pt(e, r) {
  var n = e.__data__;
  return function (e) {
    var r = t(e);
    return "string" == r || "number" == r || "symbol" == r || "boolean" == r ? "__proto__" !== e : null === e
  }(r) ? n["string" == typeof r ? "string" : "hash"] : n.map
}

function _t(t, e) {
  var r = function (t, e) {
    return null == t ? void 0 : t[e]
  }(t, e);
  return st(r) ? r : void 0
}
rt.prototype.clear = function () {
  this.__data__ = J ? J(null) : {}
}, rt.prototype.delete = function (t) {
  return this.has(t) && delete this.__data__[t]
}, rt.prototype.get = function (t) {
  var e = this.__data__;
  if (J) {
    var r = e[t];
    return "__lodash_hash_undefined__" === r ? void 0 : r
  }
  return F.call(e, t) ? e[t] : void 0
}, rt.prototype.has = function (t) {
  var e = this.__data__;
  return J ? void 0 !== e[t] : F.call(e, t)
}, rt.prototype.set = function (t, e) {
  return this.__data__[t] = J && void 0 === e ? "__lodash_hash_undefined__" : e, this
}, nt.prototype.clear = function () {
  this.__data__ = []
}, nt.prototype.delete = function (t) {
  var e = this.__data__,
    r = it(e, t);
  return !(r < 0 || (r == e.length - 1 ? e.pop() : W.call(e, r, 1), 0))
}, nt.prototype.get = function (t) {
  var e = this.__data__,
    r = it(e, t);
  return r < 0 ? void 0 : e[r][1]
}, nt.prototype.has = function (t) {
  return it(this.__data__, t) > -1
}, nt.prototype.set = function (t, e) {
  var r = this.__data__,
    n = it(r, t);
  return n < 0 ? r.push([t, e]) : r[n][1] = e, this
}, ot.prototype.clear = function () {
  this.__data__ = {
    hash: new rt,
    map: new(N || nt),
    string: new rt
  }
}, ot.prototype.delete = function (t) {
  return pt(this, t).delete(t)
}, ot.prototype.get = function (t) {
  return pt(this, t).get(t)
}, ot.prototype.has = function (t) {
  return pt(this, t).has(t)
}, ot.prototype.set = function (t, e) {
  return pt(this, t).set(t, e), this
}, ct.prototype.clear = function () {
  this.__data__ = new nt
}, ct.prototype.delete = function (t) {
  return this.__data__.delete(t)
}, ct.prototype.get = function (t) {
  return this.__data__.get(t)
}, ct.prototype.has = function (t) {
  return this.__data__.has(t)
}, ct.prototype.set = function (t, e) {
  var r = this.__data__;
  if (r instanceof nt) {
    var n = r.__data__;
    if (!N || n.length < 199) return n.push([t, e]), this;
    r = this.__data__ = new ot(n)
  }
  return r.set(t, e), this
};
var yt = C ? w(C, Object) : function () {
    return []
  },
  ht = function (t) {
    return P.call(t)
  };

function dt(t, e) {
  return !!(e = null == e ? 9007199254740991 : e) && ("number" == typeof t || i.test(t)) && t > -1 && t % 1 == 0 && t < e
}

function jt(t) {
  var e = t && t.constructor;
  return t === ("function" == typeof e && e.prototype || S)
}

function vt(t) {
  if (null != t) {
    try {
      return E.call(t)
    } catch (t) {}
    try {
      return t + ""
    } catch (t) {}
  }
  return ""
}

function gt(t, e) {
  return t === e || t != t && e != e
}(L && "[object DataView]" != ht(new L(new ArrayBuffer(1))) || N && ht(new N) != o || q && "[object Promise]" != ht(q.resolve()) || G && ht(new G) != c || H && "[object WeakMap]" != ht(new H)) && (ht = function (t) {
  var e = P.call(t),
    r = "[object Object]" == e ? t.constructor : void 0,
    n = r ? vt(r) : void 0;
  if (n) switch (n) {
    case K:
      return "[object DataView]";
    case Q:
      return o;
    case X:
      return "[object Promise]";
    case Y:
      return c;
    case Z:
      return "[object WeakMap]"
  }
  return e
});
var wt = Array.isArray;

function At(t) {
  return null != t && function (t) {
    return "number" == typeof t && t > -1 && t % 1 == 0 && t <= 9007199254740991
  }(t.length) && !Ot(t)
}
var mt = T || function () {
  return !1
};

function Ot(t) {
  var e = xt(t) ? P.call(t) : "";
  return e == r || e == n
}

function xt(e) {
  var r = t(e);
  return !!e && ("object" == r || "function" == r)
}

function St(t) {
  return At(t) ? ut(t) : function (t) {
    if (!jt(t)) return z(t);
    var e = [];
    for (var r in Object(t)) F.call(t, r) && "constructor" != r && e.push(r);
    return e
  }(t)
}
module.exports = function (t) {
  return ft(t, !0, !0)
};